<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第二次实验</title>
</head>
<body>
    <script>
        /*189000526 谭静*/
        /*第一题*/
            //(1).Number()
             console.log(Number(true),Number(null),+undefined);
            //(2).Boolean() 非空字符串转化成Boolean都为true
             console.log(Boolean('100'),Boolean(100),Boolean(null),!!undefined);
            //(3).parseInt() 0b开头是二进制转换， 0x2A是十六进制转换，第四个是八进制转换
             console.log(parseInt(123.6),parseInt(0b1011011),parseInt(0x2A),parseInt(0X2A,8));
            //(4).parseFloat()
             console.log(parseFloat('123.6'),parseFloat('100px'),parseFloat(010));
            //(5).eval()进行运算
             console.log(eval('87*99+2'));
            //(6).isNaN()判断指定参数是否为数字，是数字，返回 false，否则返回 true
             console.log(isNaN(null),isNaN('123'),isNaN('abc'),isNaN('a1b2c3'));
            /*null转化为数字0，‘123’转换为数字123，后面两者都无法转换为数字*/
      
        /*第二题*/
            //(1).
             var arr1 = [];
             console.log(arr1, arr1.length);//空数组
             var arr2 = [1, 3, 3];
             console.log(arr2[0], arr2.length);//下标为0的元素是1，共有三个元素
             var arr3 = new Array();//定义一个数组对象，但没赋值
             console.log(arr3[1], arr3.length);
            //(2).
             arr2.splice(0,1);//从第1个位置开始删除数组后的1个元素：
             console.log(arr2[0],arr2[1]); 


        /*第三题  关于日期对象，显示现在是几点几分*/
            var dt = new Date();//创建一个日期对象
            console.log("现在的本地时间是" + dt.getHours() + ': ' + dt.getMinutes());//分别获取小时和分钟


        /*第四题，关于正则表达式*/
            //(1).
             var reg1 = /^\d{4}$/;//4位整数
             console.log(reg1.test('1234'),
             reg1.test('1a34'),
             reg1.test('12345'));
            //(2).
             var reg2 = RegExp("^[sp]\\d{1,4}$", "i");//包含s或p字母以及1-4之间的数字
             console.log(reg2.test('p123'),
             reg2.test('1234'),
             reg2.test('s10'));
             //(3).
             var reg3 = RegExp("^1(3[3])|(8[09])|(5[3])\\d{8}$");
             console.log(reg3.test('13302368116'),reg3.test('18902368116'),
             reg3.test('18002368116'), reg3.test('15345678910'),
             reg3.test('18202368116'),reg3.test('13502368116'),reg3.test('18102368116'));

             /*第五题  关于String对象*/
             var str = '1525889837@qq.com';
             var n = str.split("@");//以@为分隔符将str分别存入到数组n
             console.log('您的QQ号码为：' + n[0]);

             /*第六题   关于Math对象*/
             console.log(Math.floor((Math.random()*3) + 1));

             /*第七题 预测结果：7*/
             var x = 1;
             function A(y){
                 var x = 2;
                 function B(z){
                     console.log(x + y + z);
                 }
                 return B;
             }
             var C = A(2);
             C(3);//实际输出：7 
             /*原因：第一次调用函数A，y=2，且返回函数B，但并没有执行函数B，只是将函数B赋值给变量C；
             第二次执行函数B，z=3，x是相邻函数A定义的变量x，即结果x+y+z=2+2+3=7*/

    </script>
</body>
</html>